package com.xscd.inner;
/*
* 概述：匿名内部类本质上就是一个特殊的局部内部类（定义在方法内部）
* 前提：需要一个接口或者类
*   格式：
*       new 类名\接口名 （）{
*
*       }
*
*       new 类名（）{}：代表继承这个类
*       new 接口名（）{} ：代表实现这个接口
*
*       显然，匿名内部类可以在定义类的时候对其实例化，让代码变得更加简洁
* */
public class AnonClassTest1 {
    public static void main(String[] args) {

        // 如果方法的形参是接口类型，我们该传入的是什么？
        // 传入的是该接口的实现类
        useInter(new InterImpl());  //这样做需要很多步骤，显然麻烦

        //所以
        useInter(new Inter() {
            @Override
            public void show() {
                System.out.println("匿名内部类---");
            }
        });

    }

    public static void useInter(Inter i){  // Inter i = new InterImpl();
        i.show();
    }
}

interface Inter {
    void show();
}

class InterImpl implements Inter {

    @Override
    public void show() {
        System.out.println("interimpl--show");
    }
}